
/*
	功能：缓冲运动整合整合框架
	参数1：要运动的元素
	参数2：要运动的元素的属性组成的JSON对象
	参数3：是否运动完之后进行下一次运动
	无返回值
	
*/
//缓冲运动整合
function startMove(element,attrJSON,callback){
	clearInterval(element.timer);
	element.timer = setInterval(function(){
		var attrJSONCount = 0;
		var intervalCount = 0;
		for(var attrName in attrJSON){
			var cur = attrName == "opacity" ? Math.round( getStyle(element,attrName) * 100 ) : parseInt( getStyle(element,attrName) );
			var speed = (attrJSON[attrName] - cur) / 5;
			speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
			if(attrName == "opacity"){
				element.style.opacity = (cur + speed) / 100;
				element.style.filter = "alpha(opacity=" + (cur + speed) + ")";
			}
			else{
				element.style[attrName] = cur + speed + "px";
			}
			attrJSONCount++;
			if(cur == attrJSON[attrName]){
				intervalCount++;	
			}
		}
		if(attrJSONCount == intervalCount){
			clearInterval(element.timer);
			if(callback){
				callback();
			}
		}	
	},60);
}


/*
	功能：按照接收的元素找到其对应的样式属性，并返回对应的样式属性值
	参数1：给定的元素
	参数2：指定的元素的属性
	返回值：指定的元素的属性值
*/
function getStyle(element,attributeName){
	if(element.currentStyle){
		return element.currentStyle[attributeName];
	}
	else{
		return window.getComputedStyle(element,null)[attributeName];
	}
}